﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum СпособыРасчетаСебестоимостиВыпускаПоОперациям
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"4b4f8947-48ee-4263-9e1c-0446e46a6aaa\", \"Представление\":\"ПоНулевойСтоимости\"}")]
		ПоНулевойСтоимости = 0,//По нулевой стоимости
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"55b08be0-fbe5-4c66-8a17-5a72c4a5a359\", \"Представление\":\"ПоПлановойСебестоимости\"}")]
		ПоПлановойСебестоимости = 1,//По плановой себестоимости
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"fc72cc44-788c-448f-b815-435669c27ded\", \"Представление\":\"ПоПрямымЗатратам\"}")]
		ПоПрямымЗатратам = 2,//По прямым затратам
	}
	public static partial class СпособыРасчетаСебестоимостиВыпускаПоОперациям_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПоНулевойСтоимости = new Guid("46041c9e-6ae4-aa6a-4263-48ee4b4f8947");//По нулевой стоимости
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПоПлановойСебестоимости = new Guid("725a178a-a5c4-59a3-4c66-fbe555b08be0");//По плановой себестоимости
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПоПрямымЗатратам = new Guid("564315b8-c269-ed7d-448f-788cfc72cc44");//По прямым затратам
		public static СпособыРасчетаСебестоимостиВыпускаПоОперациям Получить(this СпособыРасчетаСебестоимостиВыпускаПоОперациям Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыРасчетаСебестоимостиВыпускаПоОперациям Получить(this СпособыРасчетаСебестоимостиВыпускаПоОперациям Значение, Guid Ссылка)
		{
			if(Ссылка == ПоНулевойСтоимости)
			{
				return СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоНулевойСтоимости;
			}
			else if(Ссылка == ПоПлановойСебестоимости)
			{
				return СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоПлановойСебестоимости;
			}
			else if(Ссылка == ПоПрямымЗатратам)
			{
				return СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоПрямымЗатратам;
			}
			return СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыРасчетаСебестоимостиВыпускаПоОперациям Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыРасчетаСебестоимостиВыпускаПоОперациям Значение)
		{
			switch (Значение)
			{
				case СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоНулевойСтоимости: return ПоНулевойСтоимости;
				case СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоПлановойСебестоимости: return ПоПлановойСебестоимости;
				case СпособыРасчетаСебестоимостиВыпускаПоОперациям.ПоПрямымЗатратам: return ПоПрямымЗатратам;
			}
			return Guid.Empty;
		}
	}
}